﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Security.Principal;
using System.IO;
using System.Threading;
using System.Security.Cryptography;

namespace Ruandao.Web
{
    public class DownloadHandler
        : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                ProcessDownload(context.User.Identity);
                string fileId = context.Request.Params["id"];

                string path = GetPath(fileId);

                FileUtil fu = new FileUtil();
                fu.DownLoad(context, path, 10240, 1024 * 1024 * 10);
            }
            catch { }
            context.Response.End();
        }

        private string GetPath(string fileId)
        {
            // 在此根据文件标记返回文件路径。

            //return @"E:\test.zip";
            return @"E:\My Document\Visual Studio 2005\WebSites\File\d.ISO";
        }

        private void ProcessDownload(IIdentity user)
        {
            if (user.IsAuthenticated)
            {
                // 在此可以处理有关用户下载数据时需要做的业务
                // 比如扣取用户积分。
            }
            else
            {
                // 没有通过验证时采取的操作，如：抛出异常。
                //throw new System.Security.SecurityException();
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

